<?php

class Post extends Core_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->helper('utils');
        $this->load->helper('text');
        $this->load->library('ImageLib');
        $this->load->model('post_model');

        if (empty($_SESSION['message']) == FALSE) {
            $this->data['message'] = $_SESSION['message'];
            unset($_SESSION['message']);
        }

        if (empty($_SESSION['error']) == FALSE) {
            $this->data['error'] = $_SESSION['error'];
            unset($_SESSION['error']);
        }

        if (empty($_SESSION['params_post']) == FALSE) {
            $this->data['params_post'] = $_SESSION['params_post'];
            unset($_SESSION['params_post']);
        }
    }

    public function index() {
        $args['type'] = 1;
        $this->data['post_wall'] = $this->post_model->get_all($args);
        $args['type'] = 2;
        $this->data['post_friend'] = $this->post_model->get_all($args);
        $args['type'] = 3;
        $this->data['post_group'] = $this->post_model->get_all($args);

        $this->template->parse_view('content', 'frontend/post/index', $this->data);
        $this->template->render();
    }

    public function wall() {
        $params = $this->input->post();
        if (empty($params) == FALSE) {
            $needles = array('name', 'content');
            if (is_required($params, $needles) == TRUE) {
                if (empty($_FILES['image']['name'][0]) == FALSE) {
                    $upload_image = $this->imagelib->multi_upload($_FILES['image']);
                    if ($upload_image == FALSE) {
                        $_SESSION['error'] = 'Định dạng ảnh không hợp lệ';
                        $_SESSION['params_post'] = $params;
                        redirect(base_url('post#post-wall'));
                    }
                }

                $data_insert = array(
                    'name' => $params['name'],
                    'content' => $params['content'],
                    'fb_id' => $_SESSION['user_info']['facebook_id'],
                    'type' => 1,
                );

                if (empty($upload_image) == FALSE) {
                    $data_insert['image'] = json_encode($upload_image);
                }

                $this->post_model->create($data_insert);
                $_SESSION['message'] = 'Thêm nội dung thành công';
                redirect(base_url('post#post-wall'));
            } else {
                $_SESSION['error'] = 'Vui lòng nhập đủ thông tin';
                $_SESSION['params_post'] = $params;
                redirect(base_url('post#post-wall'));
            }
        } else {
            redirect(base_url('home'));
        }
    }
    
    public function friend() {
        $params = $this->input->post();
        if (empty($params) == FALSE) {
            $needles = array('name', 'content');
            if (is_required($params, $needles) == TRUE) {
                if (empty($_FILES['image']['name'][0]) == FALSE) {
                    $upload_image = $this->imagelib->multi_upload($_FILES['image']);
                    if ($upload_image == FALSE) {
                        $_SESSION['error'] = 'Định dạng ảnh không hợp lệ';
                        $_SESSION['params_post'] = $params;
                        redirect(base_url('post#post-friend'));
                    }
                }

                $data_insert = array(
                    'name' => $params['name'],
                    'content' => $params['content'],
                    'fb_id' => $_SESSION['user_info']['facebook_id'],
                    'type' => 2,
                );

                if (empty($upload_image) == FALSE) {
                    $data_insert['image'] = json_encode($upload_image);
                }

                $this->post_model->create($data_insert);
                $_SESSION['message'] = 'Thêm nội dung thành công';
                redirect(base_url('post#post-friend'));
            } else {
                $_SESSION['error'] = 'Vui lòng nhập đủ thông tin';
                $_SESSION['params_post'] = $params;
                redirect(base_url('post#post-friend'));
            }
        } else {
            redirect(base_url('home'));
        }
    }
    
    public function group() {
        $params = $this->input->post();
        if (empty($params) == FALSE) {
            $needles = array('name', 'content');
            if (is_required($params, $needles) == TRUE) {
                if (empty($_FILES['image']['name'][0]) == FALSE) {
                    $upload_image = $this->imagelib->multi_upload($_FILES['image']);
                    if ($upload_image == FALSE) {
                        $_SESSION['error'] = 'Định dạng ảnh không hợp lệ';
                        $_SESSION['params_post'] = $params;
                        redirect(base_url('post#post-group'));
                    }
                }

                $data_insert = array(
                    'name' => $params['name'],
                    'content' => $params['content'],
                    'fb_id' => $_SESSION['user_info']['facebook_id'],
                    'type' => 3,
                );

                if (empty($upload_image) == FALSE) {
                    $data_insert['image'] = json_encode($upload_image);
                }

                $this->post_model->create($data_insert);
                $_SESSION['message'] = 'Thêm nội dung thành công';
                redirect(base_url('post#post-group'));
            } else {
                $_SESSION['error'] = 'Vui lòng nhập đủ thông tin';
                $_SESSION['params_post'] = $params;
                redirect(base_url('post#post-group'));
            }
        } else {
            redirect(base_url('home'));
        }
    }

    public function update($id) {
        $id = intval($id);
        $params = $this->input->post();
        if (empty($params) == TRUE) {
            $result = $this->post_model->get_one($id);
            $this->data['params_post']['id'] = $id;
            $this->data['params_post']['type'] = $result['type'];
            $this->data['params_post']['name'] = $result['name'];
            $this->data['params_post']['content'] = $result['content'];
            $this->data['params_post']['image'] = json_decode($result['image'], TRUE);

            $this->template->parse_view('content', 'frontend/post/update', $this->data);
            $this->template->render();
        } else {
            $needles = array('name', 'content');
            if (is_required($params, $needles) == TRUE) {
                if (empty($_FILES['image']['name'][0]) == FALSE) {
                    $upload_image = $this->imagelib->multi_upload($_FILES['image']);
                    if ($upload_image == FALSE) {
                        $_SESSION['error'] = 'Định dạng ảnh không hợp lệ';
                        $_SESSION['params_post'] = $params;
                        redirect(base_url("post/update/{$id}"));
                    }
                }

                $data_update = array(
                    'name' => $params['name'],
                    'content' => $params['content'],
                    'fb_id' => $_SESSION['user_info']['facebook_id'],                    
                );

                if (empty($upload_image) == FALSE) {
                    $data_update['image'] = json_encode($upload_image);
                }

                $this->post_model->update($id, $data_update);
                $_SESSION['message'] = 'Thay đổi nội dung thành công';
                if($params['type'] == 1){
                    redirect(base_url("post#post-wall"));
                }else if($params['type'] == 2){
                    redirect(base_url("post#post-friend"));
                } else{
                    redirect(base_url("post#post-group"));
                }
            } else {
                $_SESSION['error'] = 'Vui lòng nhập đủ thông tin';
                $_SESSION['params_post'] = $params;
                redirect(base_url("post/update/{$id}"));
            }
        }
    }

    public function update_status() {
        $params = $this->input->post();
        if (empty($params) == FALSE) {
            $id = intval($params['id']);
            $data_update['status'] = $params['status'];
            
            $this->load->model('post_model');
            $this->post_model->update($id, $data_update);
        }
    }

    public function insert_post_wall() {
        $params = $this->input->post(NULL, TRUE);
        if (empty($params) == FALSE) {
            $this->load->model('PostModel');
            $data_insert = array(
                'user_id' => 'username1',
                'name' => $params['name'],
                'photo' => $params['name'],
                'content' => $params['content'],
                'type' => 1,
            );
            $this->PostModel->insert_auto_post($data_insert);
        } else {
            redirect(base_url());
        }
    }

    public function insert_post_friend() {
        $params = $this->input->post(NULL, TRUE);
        if (empty($params) == FALSE) {
            $this->load->model('PostModel');
            $data_insert = array(
                'user_id' => 'username1',
                'name' => $params['name'],
                'photo' => $params['name'],
                'content' => $params['content'],
                'type' => 2,
            );
            $this->PostModel->insert_auto_post($data_insert);
        } else {
            redirect(base_url());
        }
    }

    public function insert_post_group() {
        $params = $this->input->post(NULL, TRUE);
        if (empty($params) == FALSE) {
            $this->load->model('PostModel');
            $data_insert = array(
                'user_id' => 'username1',
                'name' => $params['name'],
                'photo' => $params['name'],
                'content' => $params['content'],
                'type' => 3,
            );
            $this->PostModel->insert_auto_post($data_insert);
        } else {
            redirect(base_url());
        }
    }

}
